@echo off
chcp 65001

REM 更新 setuptools, wheel 和 twine
call .\python\python.exe -m pip install --user --upgrade setuptools wheel twine
if %errorlevel% neq 0 exit /b %errorlevel%

REM 构建分发包
call .\python\python.exe setup.py sdist bdist_wheel
if %errorlevel% neq 0 exit /b %errorlevel%

REM 使用 PowerShell 提示用户输入 PyPI 的 API 令牌，并隐藏输入
for /f "tokens=*" %%i in ('powershell -command "$pass = read-host '请输入 PyPI API 令牌' -AsSecureString ; [System.Runtime.InteropServices.Marshal]::PtrToStringUni([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))"') do set pypi_token=%%i

REM 使用 Twine 上传包到 PyPI，使用 __token__ 作为用户名
.\python\python.exe -m twine upload --username "__token__" --password %pypi_token% dist/*

REM 检查上传命令是否成功
if %errorlevel% neq 0 (
    echo 上传失败，请检查您的API令牌或网络连接。
) else (
    echo 包已成功上传到 PyPI。

    REM 清理构建文件和文件夹
    echo 正在清理构建文件...
    rmdir /s /q dist
    rmdir /s /q build
    for /f "delims=" %%i in ('dir /b /ad-h /s *.egg-info') do rmdir /s /q "%%i"
    echo 清理完成。
)

@echo 请按任意键继续
pause >nul